var DisciplinaMapper = require('../mappers/disciplina.mapper'),
    CursoMapper = require('../mappers/curso.mapper'),
    Disciplina = require('../classes/disciplina'),
    Curso = require('../classes/curso'),
    Departamento = require('../classes/departamento');

function DisciplinaController() {
    var mapper = new DisciplinaMapper();
    var cursoMapper = new CursoMapper();

    this.add = function(nome, carga, curso, callback) {
        var args = arguments;
        var c = new Curso();
        c.setNome(curso);
        cursoMapper.get(c, function(err, doc) {
            var disciplina = new Disciplina();
            disciplina.setNome(nome);
            disciplina.setCarga(carga);
            disciplina.setCurso(doc);
            mapper.add(disciplina, callback);
        });
    }

    this.get = function(disciplina, callback) {
        var d = new Disciplina();
        d.setNome(disciplina);
        mapper.get(d, function(err, doc) {
            callback(err, doc);
        });
    }

    this.getById = function(id, callback) {
        mapper.getById(id, callback);
    }

    this.update = function(req) {
        //TODO
    }

    this.remove = function(disciplina, callback) {
        var args = arguments;
        var d = new Disciplina();
        d.setNome(disciplina);
        mapper.remove(d, callback);
    }

    this.getAll = function(callback) {
        mapper.getAll(callback);
    }

}

module.exports = DisciplinaController;
